home *** CD-ROM | disk | FTP | other *** search
/ Shareware Overload Trio 2 / Shareware Overload Trio Volume 2 (Chestnut CD-ROM).ISO / dir24 / bpq408.zip / QEMMPROB < prev    next >
Text File  |  1993-09-22  |  2KB  |  39 lines

  1.  
  2. Received: from n1bee.ampr.org by switch.bedford.ammr.org with SMTP
  3. >> WA1PHY General Purpose SMTP-> Mailbox Server.
  4.  
  5. I recently had a bug report on one of my own programs which is designed to
  6. interface to your packet switch.  The program had been working for some
  7. time under QEMM 6.x, but failed startup under QEMM 7.x.
  8.  
  9. In certain cases, it seems that QEMM 7.x will hide the interrupt vector
  10. table from the executing application and will replace it with its own
  11. synthetic local interrupt vector table.  The replacement table has the
  12. form where each vector will contain an address SSSS:00NN, where SSSS is
  13. some descriptor used by QEMM and which is the same for all vectors, and
  14. where NN is the hexadecimal interrupt vector number.  For example, the
  15. contents of the Int 14h vector might be E012:0014.
  16.  
  17. Normally, this would be transparent to an application which actually
  18. executed an 'int' instruction, since QEMM would use the protected mode
  19. facilities to trap and redirect control appropriately.  However, the
  20. install checking for the G8BPQ switch, as you well know, involves
  21. obtaining the contents of an interrupt vector and using it as a pointer
  22. to read the nearby memory for the 'G8BPQ' signature.  With the vector
  23. actually pointing at an arbitrary protected mode descriptor, this test
  24. completely fails.
  25.  
  26. This problem only seems to arise under QEMM 7.x when it is running a
  27. program in Ring 3.  Other than when coupled with DESQview, I don't
  28. know of any way to be sure of the privilege level at which a program
  29. executes.  Under DESQview, running an affected program at Ring 2 or
  30. a more privileged level corrected the failure.  Other than the install
  31. check, all other functions which involve actual transfer of control to
  32. the interrupt handler seem to work.
  33.  
  34. You might want to make some mention of this in the documentation.  I
  35. had a terrible time figuring out what was happening and why.
  36.  
  37. -- Mike, N1BEE @ WA1PHY.#EMA.MA.USA.NA
  38.  
  39.